package cn.yup.web.controller;

import cn.yup.anno.RequiredPermission;
import cn.yup.domain.WorkJob;
import cn.yup.query.JSONResult;
import cn.yup.service.IWorkJobService;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;


@Controller // 标识一下 可以被扫描 创建对象 加入spring容器
@RequestMapping("/workJob") // 访问路径的映射地址   作用 ： 可以通过浏览器 进行访问的地址
public class WorkJobController {


      @Autowired// 自动装配  WorkJobService
      private IWorkJobService workJobService;

      // 想让浏览器直接访问的
      @RequestMapping("/list")  // 类上面的requestMapping的内容 + 方法上面的requestMapping的内容
      // 这两个映射地址拼接起来 才是找到这个方法的真实路径
      //      // currentPage  表示接收 页面上提交的参数
      @RequiredPermission({"职务列表权限","WorkJobController.list"})


      public String list(Model model,String name){  // 返回值是String   返回值的内容 一般是一个地址

            PageInfo pageInfo = workJobService.findAll(name);
            // 把数据共享给页面
            model.addAttribute("pageInfo",pageInfo);
            if(name!="" && name!=null){
                  model.addAttribute("name",name);
            }


            return "/workJob/list";
      }
      @RequestMapping("/delete")
      @ResponseBody
      @RequiredPermission({"职务删除权限","WorkJobController.delete"})
      public JSONResult delete(Long id) {
      try {
            workJobService.deleteById(id);
            return new JSONResult();
      } catch (Exception e){
            e.printStackTrace();
            return new JSONResult().mark("删除失败，请稍后重试");
      }

      }

      @RequestMapping("/input")
      @RequiredPermission({"职务添加权限","WorkJobController.input"})
      public String input(Long id,Model model) {
            if (id != null) {
                  //根据id获取职务信息
                  WorkJob workJob=workJobService.findById(id);
                  //把数据共享到页面
                  model.addAttribute("entity",workJob);
            }
            return "/workJob/input";
      }

      @RequestMapping("/saveOrUpdate")
      @RequiredPermission({"职务更新权限","WorkJobController.saveOrUpdate"})
      public String saveOrUpdate(WorkJob workJob) {
            workJobService.saveOrUpdate(workJob);
            return "redirect:/workJob/list";
      }//redirect重定向
}





